﻿Public Class modificarSorteo
    Private Sub modificarSorteo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LimpiaForm()
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbEstado.SelectedIndexChanged
    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Salir()
    End Sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCliente.KeyPress
        validarInt(e)
    End Sub

    Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNombre.KeyPress
        validarString(e)
    End Sub

    Private Sub btnConsulta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConsulta.Click
        Dim Sorteo As New clsSorteo()
        Dim SorteoDao As New daoSorteo()
        Dim ListaSorteos As New List(Of clsSorteo)
        Dim Cliente As New clsCliente()
        Dim CLienteDao As New daoCliente()
        Try
            If txtNroPremio.Text.Trim.Length > 0 Then
                Sorteo = SorteoDao.TraeSorteo(Convert.ToInt32(txtNroPremio.Text.Trim))
            End If
            If Sorteo.Sort_Id > 0 Then
                AsignaCampos(Sorteo)
                Exit Sub
            End If
            If txtCliente.Text.Trim.Length > 0 Then
                Cliente = CLienteDao.TraeCliente(Convert.ToInt32(txtCliente.Text.Trim))
            End If
            If Cliente.Cli_Id > 0 Then
                ListaSorteos = SorteoDao.TraeSorteos(Cliente)
            End If

            If ListaSorteos.Count = 0 Then
                ListaSorteos = SorteoDao.TraeSorteos()
                If ListaSorteos.Count = 0 Then
                    MessageBox.Show("No hay ningun Premio para modificar.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Else
                    consultaLSorteo.ModoAcceso = "MODI SORT"
                    consultaLSorteo.CargaGrilla(ListaSorteos)

                    Me.Enabled = False
                    consultaLSorteo.MdiParent = Me.MdiParent
                    consultaLSorteo.Show()
                End If
            ElseIf ListaSorteos.Count = 1 Then
                Sorteo = ListaSorteos.Item(0)
                AsignaCampos(Sorteo)
                Exit Sub
            Else
                consultaLSorteo.ModoAcceso = "MODI SORT"
                consultaLSorteo.CargaGrilla(ListaSorteos)
                Me.Enabled = False
                consultaLSorteo.MdiParent = Me.MdiParent
                consultaLSorteo.Show()
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Finally
            Sorteo.Dispose()
            SorteoDao.Dispose()
            Cliente.Dispose()
            CLienteDao.Dispose()
        End Try
    End Sub
    Private Sub LimpiaForm()
        txtCliente.Text = ""
        txtNombre.Text = ""
        txtNroPremio.Text = ""
        txtProducto.Text = ""
        cmbEstado.SelectedIndex = 0
        dtpFecha.Value = Now.Date

        btnConsulta.Enabled = True
        txtCliente.Enabled = True
        txtNroPremio.Enabled = True
        btnActualizar.Enabled = False
        txtNombre.Enabled = False
        txtProducto.Enabled = False
        cmbEstado.Enabled = False
        dtpFecha.Enabled = False
    End Sub

    Private Sub btnBuscaCliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpi.Click
        LimpiaForm()
    End Sub
    Private Sub Salir()
        If (btnActualizar.Enabled = True) Then
            Dim Respuesta As DialogResult
            Respuesta = MessageBox.Show("¿Desea salir sin guardar?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
            If Respuesta = Windows.Forms.DialogResult.Yes Then
                Me.Close()
            End If
        Else
            Me.Close()
        End If
    End Sub
    Public Sub AsignaCampos(ByVal Sorteo As clsSorteo)
        txtCliente.Text = Sorteo.Cliente.Cli_Id.ToString.Trim
        txtNombre.Text = Sorteo.Cliente.Apellido.Trim.ToUpper & " " & Sorteo.Cliente.Nombre.Trim.ToUpper
        txtNroPremio.Text = Sorteo.Sort_Id.ToString.Trim
        txtProducto.Text = Sorteo.Producto.Descripcion.Trim.ToUpper & " " & Sorteo.Producto.Marca.Trim.ToUpper & " " & Sorteo.Producto.Modelo.Trim.ToUpper
        Select Case Sorteo.Estado
            Case "P"
                cmbEstado.Text = "PENDIENTE"
                cmbEstado.Enabled = True
                btnActualizar.Enabled = True
            Case "C"
                cmbEstado.Text = "CONTACTADO"
                cmbEstado.Enabled = True
                btnActualizar.Enabled = True
            Case "V"
                cmbEstado.Text = "VENCIDO"
                cmbEstado.Enabled = False
                btnActualizar.Enabled = False
            Case "E"
                cmbEstado.Text = "ENTREGADO"
                cmbEstado.Enabled = False
                btnActualizar.Enabled = False
        End Select

        dtpFecha.Value = Sorteo.Fecha
        dtpFecha.Enabled = False

        btnConsulta.Enabled = False
        txtCliente.Enabled = False
        txtNombre.Enabled = False
        txtNroPremio.Enabled = False
        txtProducto.Enabled = False
    End Sub

    Private Sub btnActualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActualizar.Click
        Dim Sorteo As New clsSorteo()
        Dim SorteoDao As New daoSorteo()
        Try
            Sorteo = SorteoDao.TraeSorteo(Convert.ToInt32(txtNroPremio.Text.Trim))
            Select Case Sorteo.Estado
                Case "P"
                    If cmbEstado.Text <> "CONTACTADO" Then
                        MessageBox.Show("Esta orden de Premio solo puede pasar a estado Contactado", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        Exit Sub
                    End If
                Case "C"
                    If cmbEstado.Text <> "VENCIDO" And cmbEstado.Text <> "ENTREGADO" Then
                        MessageBox.Show("Esta orden de Premio solo puede pasar a estado Vencido o Entregado", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        Exit Sub
                    End If
            End Select
            Select Case cmbEstado.Text
                Case "CONTACTADO"
                    Sorteo.Estado = "C"
                Case "VENCIDO"
                    Sorteo.Estado = "V"
                Case "ENTREGADO"
                    Sorteo.Estado = "E"
            End Select
            If SorteoDao.Modificar(Sorteo) Then
                MessageBox.Show("La orden de premio fue actualizada correctamente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
                LimpiaForm()
            Else
                MessageBox.Show("No se pudo actualizar correctamente la Orden de Premio", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Finally
            Sorteo.Dispose()
            SorteoDao.Dispose()
        End Try
    End Sub
End Class
